// pages/scene/scene.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    inputVal: '',
    videoUrl: '',
    taskId: ''
  },

  bindKeyInput: function(e) {
    this.setData({
      inputVal: e.detail.value
    });
  },

  handleSend: function() {
    const {inputVal} = this.data;
    if (!inputVal.trim()) {
      wx.showToast({
        title: '请输入视频描述',
        icon: 'none'
      });
      return;
    }

    wx.request({
      url: 'https://open.bigmodel.cn/api/paas/v4/videos/generations',
      method: 'POST',
      header: {
        'Authorization': 'Bearer 5b151d54367b4d5ad22270260b388644.9mb3hnZhONsLHYlL',
        'Content-Type': 'application/json'
      },
      data: JSON.stringify({
        model: 'cogvideox',
        prompt: inputVal
      }),
      success: (res) => {
        if (res.statusCode === 200 && res.data) {
          const { id, request_id } = res.data;
          this.setData({
            taskId: id
          });
          this.checkVideoGenerationStatus(id, request_id);
        } else {
          wx.showToast({ title: '视频生成请求失败', icon: 'none' });
        }
      },
      fail: (err) => {
        console.error('请求失败:', err);
        wx.showToast({ title: '请求失败', icon: 'none' });
      }
    });
  },

  checkVideoGenerationStatus: function(taskId, requestId) {
    const checkStatusInterval = setInterval(() => {
      wx.request({
        url: `https://open.bigmodel.cn/api/paas/v4/async-result/${taskId}`,
        method: 'GET',
        header: {
          'Authorization': `Bearer 5b151d54367b4d5ad22270260b388644.9mb3hnZhONsLHYlL`,
          'Content-Type': 'application/json'
        },
        success: (res) => {
          if (res.statusCode === 200 && res.data) {
            if (res.data.task_status === 'SUCCESS') {
              const videoUrl = res.data.video_result[0].url;
              this.setData({
                videoUrl,
                taskId: ''
              });
              clearInterval(checkStatusInterval);
            } else if (res.data.task_status === 'FAIL') {
              wx.showToast({ title: '视频生成失败', icon: 'none' });
              this.setData({ taskId: '' });
              clearInterval(checkStatusInterval);
            }
          }
        }
      });
    }, 5000);
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})